package com.xuecheng.content.application.service;

import com.xuecheng.base.model.PageParams;
import com.xuecheng.base.model.PageResult;
import com.xuecheng.content.application.vo.req.CourseBaseCreateCmd;
import com.xuecheng.content.application.vo.req.CourseBaseQry;
import com.xuecheng.content.application.vo.req.CourseBaseUpdateCmd;
import com.xuecheng.content.domain.model.dto.CourseBaseDto;
import com.xuecheng.content.domain.model.dto.CourseBaseMarketDto;
import com.xuecheng.content.domain.model.dto.CoursePreviewDto;

public interface CourseBaseApplication {
    PageResult<CourseBaseDto> queryCourseBaseList(PageParams pageParams, CourseBaseQry courseBaseQry);

    CourseBaseDto createCourseBase(Long companyId, CourseBaseCreateCmd courseBaseCreateCmd);

    CourseBaseMarketDto queryCourseBaseMarket(Long id);

    CourseBaseDto updateCourseBase(Long companyId, CourseBaseUpdateCmd courseBaseUpdateCmd);

    CoursePreviewDto queryCourseBasePreview(Long courseId);

    void commitAudit(Long courseId, Long companyId);
}
